package factory;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

// Page 抽象表示 HTML 页面，即抽象的产品
// Link 和 Tray 表示抽象的零件，Item 表示所有零件的顶级抽象
public abstract class Page {
    protected String title;
    protected String author;
    protected List<Item> context = new ArrayList<>();

    public Page(String title, String author) {
        this.title = title;
        this.author = author;
    }

    public void add(Item item){
        context.add(item);
    }

    //输出编写的 html 文件
    public void output(){
        String filename = "./demo08_abstract_factory/" + title + ".html";
        try (FileWriter writer = new FileWriter(filename)) {
            writer.write(this.makeHtml());
            System.out.println(filename + " 编写完成");
        }catch (IOException e) {
            e.printStackTrace();
        }
    }

    //具体编写 html 需要其子类完成
    public abstract String makeHtml();
}
